package com.lfy.kcat.user.config;

import cn.dev33.satoken.stp.StpInterface;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * @author leifengyang
 * @version 1.0
 * @date 2025/9/13 15:33
 * @description:
 */
@Slf4j
@Component
public class StpInterfaceImpl implements StpInterface {

    /**
     * 等需要检查用户有没有权限或者角色的时候，才去触发查询
     * 获取 权限 列表；
     * @param loginId  账号id
     * @param loginType 账号类型
     * @return 给 sa-token 最终返回用户所有权限码集合
     */
    @Override
    public List<String> getPermissionList(Object loginId, String loginType) {
        //TODO 要连接数据库实时查询
        log.info("数据库实时查询权限集合... 不用每次去数据库. 一般第一次查询好以后放到缓存");
        // 本 list 仅做模拟，实际项目中要根据具体业务逻辑来查询权限
        List<String> list = new ArrayList<String>();
        return list;
    }

    /**
     *
     * @param loginId  账号id
     * @param loginType 账号类型
     * @return 给 sa-token 最终返回用户角色集合
     */
    @Override
    public List<String> getRoleList(Object loginId, String loginType) {
        //TODO 要连接数据库实时查询
        log.info("数据库实时查询角色集合");
        // 本 list 仅做模拟，实际项目中要根据具体业务逻辑来查询角色
        List<String> list = new ArrayList<String>();
        list.add("*");
        return list;
    }
}
